# Python 中没有数组，而是加入了功能更强大的列表（list），列表可以存储任何类型的数据，同一个列表中的数据类型还可以不同；列表是序列结构，可以进行序列结构的基本操作：索引、切片、加、乘、检查成员。
# 列表中所有元素都放在一个中括号 [] 中，相邻元素之间用逗号 , 分隔，如下所示：
# 列表
list1 = []  # 空列表
print(type(list1))
list2 = [1, 2, 3, True, False, "hello", 18.99]
print(list2)
a = 2999
# list3 = list(a)  # 类型转换 ：把参数转换为列表
# print(list3)
list3 = list('1234567')  # 字符串转换成列表
print(list3)
# 列表的索引
print(list3[5])
# 列表的切片
print(list3[::2])

# 列表的加法和乘法
print(list2 + list3)
print(list2 * 3)

# 列表的成员运算
print(True in list2)
print(True in list3)
print(True not in list3)
print([3, 2, 3, 4] < [2, 1])

# 内置函数 函数名
# 求元素个数
print(len(list3))
# 求元素中最大值
print(max(list3))
# 求元素中最小值
print(min(list3))
# 删除变量
# del list3
# print(list3)
print('-' * 30)

# 列表的遍历
for i in list2:
    print(i)

    # 枚举
for i, j in enumerate(list2):
    print(i, j)

for i in range(len(list2)):
    print(i, list2[i])
print('-' * 30)
# 列表的常用方法method 变量名.方法名
# 添加一个元素
list3.append('666')
print(list3)
# 添加列表
list3.extend([1, 2, 3])
print(list3)
# 插入元素
list3.insert(2, 'hello')
print(list3)
# 根据索引删除元素
list3.pop(2)
print(list3)
# 根据元素删除
list3.remove("""666""")
print(list3)
# 清空列表
list3.clear()
print(list3)
# 计算若干个元素的平均值
age = [10, 20, 30, 40]
# 列表[索引] = 数据	修改指定索引的数据
age[0] = 100
print(sum(age))
print(len(age))
print(sum(age) / len(age))
print("-" * 40)

# 	列表.count(数据)	数据在列表中出现的次数
print(age.count(20))
# todo
# 排序	列表.sort()	升序排序
print([13, 2, 5, 6].sort())
# 	列表.sort(reverse=True)	降序排序
print([13, 2, 5, 6].sort(reverse=True))

# 	列表.reverse()	逆序、反转
print(age.reverse())
